The present invention relates generally to the field of interface and control devices, and more particularly to techniques for editing code stored on such devices.
A wide range of interface devices are known and are presently in use in many different fields. In industrial automation, for example, human machine interfaces or “HMIs” are commonly employed for monitoring or controlling various processes. The HMIs may read from or write to specific registers such that they can reflect the operating state of various machines, sensors, processes, and so forth. The interfaces can also write to registers and memories such that they can, to some extent, control the functions of the process. In monitoring functions alone, little or no actual control is executed. In many other settings similar devices are employed, such as in automobiles, aircraft, commercial settings, and a host of other applications. In many applications, the interface may not communicate with a remote device or process, but may be operated in a stand-alone manner.
Many interface devices and control monitoring devices in general store code for executing their functionality. For example, operating systems, applications, run-time engines, executable code, and so forth may be stored on the devices and executed based upon various inputs and system or operator interaction with the devices. In most situations the code is written as source code, compiled and stored on the device during initial or subsequent configuration. Any subsequent changes to the code generally require either that the code be extracted from the device for editing and rewriting, followed by recompiling and restoring, or that separate code be written and placed on the device replacing the existing code. Upgrades may be made in this way, as well as adaptations to software existing on the devices.
While such editing approaches are generally effective, they are often quite inconvenient. That is, large blocks of code may often need to be relocated or drawn from a device and deciphered to determine where changes should be made. Where code is properly annotated, such changes may be relatively straightforward. However, many devices do not permit such code to be extracted from their memory or operating system, or make editing of the code quite difficult.
There is a need, therefore, for improved techniques for configuring devices such as interfaces including embedded code.